<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>Document</title>
	</head>
	<body>
		<script>
			// let rg = /abc/   只要包含 abc 就可以
			// 字符类：[] 表示有一系列字符可供选择，只要匹配其中一个就可以了
			let rg = /[abc]/; // 只要包含有 a 或 b 或 c 都返回 true
			console.log(rg.test('andy'));
			console.log(rg.test('color'));
			console.log(rg.test('vae+'));
			console.log(rg.test('dkh'));
			console.log('---------------------');

			let rg1 = /^[abc]$/; // 三选一  a 或 b 或 c 才是 true
			console.log(rg1.test('a'));
			console.log(rg1.test('b'));
			console.log(rg1.test('c'));
			console.log(rg1.test('aa'));
			console.log('---------------------');

			// - 表示范围
			let reg = /^[a-z]$/; // 26 个英文字母中任何一个字母返回 true
			console.log(reg.test('a')); // true
			console.log(reg.test('A')); // false
			console.log(reg.test('z')); // true
			console.log(reg.test('aa')); // false
			console.log('---------------------');

			// 字符组合
			let reg1 = /^[a-zA-Z0-9_-]$/; // 26 个英文字母（大写小写都可）中任何一个字母返回 true
			console.log(reg1.test('A'));
			console.log(reg1.test('b'));
			console.log(reg1.test('9'));
			console.log(reg1.test('-'));
			console.log(reg1.test('!'));
			console.log('---------------------');

			// 写在 [] 里面的 ^ 和外面的不一样，外面表示以什么字符开头，而 [] 里面的 ^ 表示取反（不能包含这些）
			let reg2 = /^[^a-zA-Z0-9_-]$/;
			console.log(reg2.test('A'));
			console.log(reg2.test('b'));
			console.log(reg2.test('9'));
			console.log(reg2.test('-'));
			console.log(reg2.test('!'));
			console.log('---------------------');
		</script>
	</body>
</html>
